[公会系统]Guild

Guild是一个功能全面的Minecraft公会系统插件,支持创建和管理公会、成员管理、权限控制、经济系统等功能。Wiki: https://github.com/chenasyd/-GuildPlugin/wiki

适用核心 Spigot /Paper 适用版本 1.13+ 是否付费 否 最新版本 v1.0.0

目录概要

1. 基础

插件简介

工会插件 (Guild)

一个功能完整的Minecraft工会系统插件,支持工会创建、成员管理、经济系统、关系管理等功能。

主要特性

  • 工会创建与管理 - 支持工会创建、删除、信息查看
  • 成员管理 - 邀请、踢出、提升、降级成员
  • 权限系统 - 基于角色的权限管理(会长、官员、成员)
  • GUI界面 - 完整的图形用户界面,操作便捷
  • 经济系统 - 工会资金管理、存款、取款、转账
  • 等级系统 - 工会等级提升,增加成员上限
  • 关系管理 - 工会间关系(盟友、敌对、中立、开战、停战)
  • 工会家 - 设置和传送到工会家
  • 申请系统 - 玩家申请加入工会
  • 异步处理 - 所有数据库操作均为异步,不影响服务器性能
  • 多数据库支持 - 支持SQLite和MySQL
  • 占位符支持 - 集成PlaceholderAPI
  • 经济集成 - 通过Vault支持多种经济插件
  • 权限集成 - 与Bukkit权限系统完全集成

功能特性

功能特性

核心功能

  • 工会创建与管理: 支持工会创建、删除、信息查看
  • 成员管理: 邀请、踢出、提升、降级成员
  • 权限系统: 基于角色的权限管理(会长、官员、成员)
  • GUI界面: 完整的图形用户界面,操作便捷
  • 经济系统: 工会资金管理、存款、取款、转账
  • 等级系统: 工会等级提升,增加成员上限
  • 关系管理: 工会间关系(盟友、敌对、中立、开战、停战)
  • 工会家: 设置和传送到工会家
  • 申请系统: 玩家申请加入工会

高级功能

  • 异步处理: 所有数据库操作均为异步,不影响服务器性能
  • 多数据库支持: 支持SQLite和MySQL
  • 占位符支持: 集成PlaceholderAPI
  • 经济集成: 通过Vault支持多种经济插件
  • 权限集成: 与Bukkit权限系统完全集成

权限节点

权限节点

基础权限

  • guild.use - 使用工会系统
  • guild.create - 创建工会
  • guild.info - 查看工会信息
  • guild.members - 查看工会成员
  • guild.invite - 邀请玩家
  • guild.kick - 踢出成员
  • guild.leave - 离开工会
  • guild.delete - 删除工会
  • guild.promote - 提升成员
  • guild.demote - 降级成员
  • guild.accept - 接受邀请
  • guild.decline - 拒绝邀请
  • guild.sethome - 设置工会家
  • guild.home - 传送到工会家
  • guild.apply - 申请加入工会

管理员权限

  • guild.admin - 管理员权限
  • guild.admin.reload - 重载配置
  • guild.admin.list - 查看所有工会
  • guild.admin.info - 查看工会详情
  • guild.admin.delete - 强制删除工会
  • guild.admin.kick - 强制踢出玩家
  • guild.admin.relation - 管理工会关系
  • guild.admin.test - 测试功能

命令列表

命令列表

玩家命令

命令 权限 描述
/guild guild.use 打开工会主界面
/guild create <名称> [标签] [描述] guild.create 创建工会
/guild info guild.info 查看工会信息
/guild members guild.members 查看工会成员
/guild invite <玩家> guild.invite 邀请玩家加入工会
/guild kick <玩家> guild.kick 踢出工会成员
/guild leave guild.leave 离开工会
/guild delete guild.delete 删除工会
/guild promote <玩家> guild.promote 提升成员职位
/guild demote <玩家> guild.demote 降级成员职位
/guild accept <邀请者> guild.accept 接受工会邀请
/guild decline <邀请者> guild.decline 拒绝工会邀请
/guild sethome guild.sethome 设置工会家
/guild home guild.home 传送到工会家
/guild apply <工会> [消息] guild.apply 申请加入工会

管理员命令

命令 权限 描述
/guildadmin guild.admin 管理员主命令
/guildadmin reload guild.admin.reload 重载配置文件
/guildadmin list guild.admin.list 列出所有工会
/guildadmin info <工会> guild.admin.info 查看工会详细信息
/guildadmin delete <工会> guild.admin.delete 强制删除工会
/guildadmin kick <玩家> <工会> guild.admin.kick 从工会踢出玩家
/guildadmin relation guild.admin.relation 关系管理
/guildadmin test guild.admin.test 测试功能

2. 配置

配置文件

配置文件 (config.yml)

# MySQL数据库设置
mysql:
  host: localhost
  port: 3306
  database: guild
  username: root
  password: ''
  table-prefix: guild_

# 公会系统设置
guild:
  # 创建公会所需的金钱
  creation-cost: 5000
  # 公会最大成员数
  max-members: 50
  # 公会名称最小长度
  min-name-length: 3
  # 公会名称最大长度
  max-name-length: 16
  # 公会标签最大长度
  max-tag-length: 5
  # 公会描述最大长度
  max-description-length: 100
  # 公会等级设置
  levels:
    max-level: 10
    # 每个等级所需的经验值
    experience-per-level:
      1: 0
      2: 1000
      3: 2500
      4: 5000
      5: 10000
      6: 20000
      7: 35000
      8: 50000
      9: 75000
      10: 100000
    # 每个等级的成员上限增加
    members-per-level:
      1: 0
      2: 5
      3: 10
      4: 15
      5: 20
      6: 25
      7: 30
      8: 35
      9: 40
      10: 50

# 权限设置
permissions:
  # 默认角色
  default-role: member
  # 角色定义
  roles:
    leader:
      name: "会长"
      permissions:
        - guild.disband
        - guild.invite
        - guild.kick
        - guild.promote
        - guild.demote
        - guild.setrole
        - guild.sethome
        - guild.setdescription
        - guild.settag
        - guild.withdraw
        - guild.deposit
        - guild.ally
        - guild.enemy
    officer:
      name: "副会长"
      permissions:
        - guild.invite
        - guild.kick
        - guild.sethome
        - guild.deposit
    member:
      name: "成员"
      permissions:
        - guild.deposit

# 消息设置
messages:
  prefix: "&8[&6公会&8] &r"
  guild-created: "&a公会 {guild} 创建成功!"
  guild-disbanded: "&c公会 {guild} 已解散!"
  guild-joined: "&a你已加入公会 {guild}!"
  guild-left: "&c你已离开公会 {guild}!"
  guild-invite-sent: "&a已向 {player} 发送公会邀请!"
  guild-invite-received: "&a你收到来自公会 {guild} 的邀请!"
  guild-promoted: "&a玩家 {player} 已被提升为 {role}!"
  guild-demoted: "&c玩家 {player} 已被降级为 {role}!"
  guild-kicked: "&c玩家 {player} 已被踢出公会!"
  guild-not-found: "&c找不到指定的公会!"
  player-not-found: "&c找不到指定的玩家!"
  not-in-guild: "&c你不在任何公会中!"
  already-in-guild: "&c你已经在一个公会中了!"
  no-permission: "&c你没有权限执行此操作!"
  insufficient-funds: "&c你没有足够的资金!"

# BungeeCord设置
bungeecord:
  # 是否启用跨服公会聊天
  enable-cross-server-chat: true
  # 是否同步公会数据
  sync-guild-data: true

# 调试模式
debug: false

配置说明

  • MySQL数据库设置 - 配置数据库连接信息
  • 公会系统设置 - 控制公会创建、成员数量、等级系统等
  • 权限设置 - 定义角色和权限
  • 消息设置 - 自定义插件消息
  • BungeeCord设置 - 跨服务器功能配置

数据库结构

数据库结构

插件使用MySQL数据库存储所有数据,表结构如下:

guilds表(公会表)

字段名 类型 描述
id INT (主键) 公会ID
name VARCHAR(16) 公会名称
tag VARCHAR(5) 公会标签
description VARCHAR(100) 公会描述
leader VARCHAR(36) 会长UUID
created_at TIMESTAMP 创建时间
level INT 公会等级
experience INT 公会经验
balance DOUBLE 公会资金
home_world VARCHAR(36) 公会家世界
home_x DOUBLE 公会家X坐标
home_y DOUBLE 公会家Y坐标
home_z DOUBLE 公会家Z坐标
home_yaw FLOAT 公会家偏航角
home_pitch FLOAT 公会家俯仰角

members表(成员表)

字段名 类型 描述
id INT (主键) 成员ID
guild_id INT (外键) 所属公会ID
player_uuid VARCHAR(36) 玩家UUID
player_name VARCHAR(16) 玩家名称
role VARCHAR(16) 角色
joined_at TIMESTAMP 加入时间
last_online TIMESTAMP 最后在线时间
contribution INT 贡献值

invites表(邀请表)

字段名 类型 描述
id INT (主键) 邀请ID
guild_id INT (外键) 公会ID
player_uuid VARCHAR(36) 被邀请玩家UUID
invited_by VARCHAR(36) 邀请者UUID
created_at TIMESTAMP 邀请时间
expires_at TIMESTAMP 过期时间

relations表(关系表)

字段名 类型 描述
id INT (主键) 关系ID
guild_id INT (外键) 公会ID
target_guild_id INT (外键) 目标公会ID
relation_type ENUM 关系类型(ally, enemy, neutral)
created_at TIMESTAMP 创建时间

logs表(日志表)

字段名 类型 描述
id INT (主键) 日志ID
guild_id INT (外键) 公会ID
action VARCHAR(32) 操作类型
actor_uuid VARCHAR(36) 操作者UUID
actor_name VARCHAR(16) 操作者名称
target_uuid VARCHAR(36) 目标UUID
target_name VARCHAR(16) 目标名称
details TEXT 详细信息
created_at TIMESTAMP 操作时间

PlaceholderAPI 变量

概述

Guild插件本次更新提供了完整的 PlaceholderAPI 支持,允许其他插件和聊天栏显示工会相关的动态信息。所有变量都支持颜色代码和中文显示。

基础工会信息变量

工会基本信息

  • %guild_name% - 工会名称
  • %guild_tag% - 工会标签
  • %guild_membercount% - 工会成员数量
  • %guild_maxmembers% - 工会最大成员数
  • %guild_level% - 工会等级
  • %guild_balance% - 工会余额(保留2位小数)
  • %guild_frozen% - 工会状态(正常/已冻结/无工会)

玩家在工会中的信息

  • %guild_role% - 玩家在工会中的角色(会长/官员/成员)
  • %guild_joined% - 玩家加入工会的时间
  • %guild_contribution% - 玩家对工会的贡献度

工会状态检查变量

玩家状态

  • %guild_hasguild% - 玩家是否有工会(是/否)
  • %guild_isleader% - 玩家是否是会长(是/否)
  • %guild_isofficer% - 玩家是否是官员(是/否)
  • %guild_ismember% - 玩家是否是工会成员(是/否)

工会权限检查变量

权限状态

  • %guild_caninvite% - 是否可以邀请玩家(是/否)
  • %guild_cankick% - 是否可以踢出成员(是/否)
  • %guild_canpromote% - 是否可以提升成员(是/否)
  • %guild_candemote% - 是否可以降级成员(是/否)
  • %guild_cansethome% - 是否可以设置工会传送点(是/否)
  • %guild_canmanageeconomy% - 是否可以管理工会经济(是/否)

3. 安装使用

安装步骤

安装步骤

1. 下载插件

  • 从官方渠道下载最新版本的 Guild 插件
  • 确保下载的版本与服务器版本兼容

2. 安装依赖

确保服务器已安装以下依赖:

  • Vault - 经济系统支持
  • PlaceholderAPI - 变量支持(可选)
  • BungeeCord - 跨服功能支持(可选)

3. 配置数据库

  1. 创建 MySQL 数据库
  2. 配置数据库连接信息
  3. 插件会自动创建所需的数据表

4. 配置文件设置

  1. 启动服务器生成配置文件
  2. 修改 config.yml 中的数据库设置
  3. 根据需要调整公会系统参数

5. 重启服务器

重启服务器使配置生效,插件开始工作。

使用方法

使用方法

公会基础操作

  1. 创建公会

    /guild create <公会名称> [标签]
    
  2. 查看公会信息

    /guild info
    
  3. 打开公会菜单

    /guild
    

成员管理

  1. 邀请玩家

    /guild invite <玩家名>
    
  2. 接受邀请

    /guild accept [公会名称]
    
  3. 踢出成员

    /guild kick <玩家名>
    
  4. 提升成员

    /guild promote <玩家名>
    

公会家功能

  1. 设置公会家

    /guild sethome
    
  2. 传送到公会家

    /guild home
    

经济功能

  1. 向公会存款

    /guild deposit <金额>
    
  2. 从公会取款

    /guild withdraw <金额>
    

外交功能

  1. 与公会结盟

    /guild ally <公会名>
    
  2. 与公会敌对

    /guild enemy <公会名>
    
  3. 查看公会关系

    /guild relations
    

故障排除

故障排除

常见问题

Q: 插件无法连接数据库

A: 检查以下设置:

  • 数据库服务器是否运行
  • 数据库连接信息是否正确
  • 数据库用户权限是否足够
  • 防火墙是否阻止连接

Q: 公会创建失败

A: 确保:

  • 玩家有足够的金钱(根据配置)
  • 公会名称符合长度要求
  • 玩家不在其他公会中
  • 公会名称未被使用

Q: 权限系统不工作

A: 检查:

  • 权限节点是否正确设置
  • 角色定义是否正确
  • 玩家角色是否正确分配
  • 重启服务器使配置生效

Q: GUI界面不显示

A: 确保:

  • 服务器版本支持GUI
  • 插件版本兼容
  • 权限设置正确
  • 检查控制台错误信息

日志查看

插件会在控制台输出详细的日志信息,包括:

  • 数据库连接状态
  • 命令执行记录
  • 权限检查结果
  • 错误信息

性能优化

  • 定期清理过期的邀请
  • 优化数据库查询
  • 合理设置公会成员上限
  • 监控插件性能指标

4. 注意事项

重要提醒

注意事项

1. 数据库要求

  • 插件需要 MySQL 数据库支持
  • 请确保正确配置数据库连接信息
  • 建议定期备份数据库以防止数据丢失
  • 确保数据库用户有足够的权限

2. 经济系统

  • 插件依赖 Vault 经济插件
  • 确保经济插件正常工作
  • 合理设置公会创建费用
  • 监控公会资金使用情况

3. 权限管理

  • 仔细配置角色权限
  • 定期检查权限设置
  • 避免权限冲突
  • 测试权限功能

4. 性能考虑

  • 大量公会可能影响性能
  • 建议合理设置成员上限
  • 定期清理无用数据
  • 监控服务器资源使用情况

5. 安全建议

  • 定期更新插件版本
  • 使用强密码保护数据库
  • 限制数据库用户权限
  • 监控异常活动

6. 兼容性

  • 插件支持 PlaceholderAPI,如需使用变量功能请安装 PlaceholderAPI 插件
  • 确保与其他插件的兼容性
  • 测试不同版本的 Minecraft 服务器
  • 备份重要数据

7. 维护建议

  • 定期检查插件更新
  • 监控数据库性能
  • 清理无用的数据
  • 优化配置文件设置

8. 依赖插件

  1. Vault - 经济系统支持
  2. PlaceholderAPI - 变量支持
  3. BungeeCord - 跨服功能支持(可选)

这个插件为 Minecraft 服务器提供了完整的公会管理系统,让玩家能够创建和管理自己的公会,享受团队合作的乐趣。